package list;

import org.junit.Test;

import java.util.LinkedList;

public class LinkedListTest {
    @Test
    public void testLinkedList() {
        LinkedList<String> list = new LinkedList<>();
        // 将"AA"封装到Node对象1中，list对象的属性first/last都指向此Node对象1.
        list.add("AA");
        // 将"BB"封装到Node对象2中，对象1和对象2构成一个双向链表，
        // 同时last指向此Node对象2，first都指向此Node对象1.
        list.add("BB");

        // ...
        // 因为LinkedList使用的是双向链表，不需要考虑扩容问题。

        /*
        LinkedList内部声明：

        private static class Node<E> {
        E item;
        Node<E> next;
        Node<E> prev;

        Node(Node<E> prev, E element, Node<E> next) {
            this.item = element;
            this.next = next;
            this.prev = prev;
        }
         */
        System.out.println(list);
    }
}
